Executive Summary

On July 16, 2025, Chicago City Council passed a landmark ordinance (O2025-0015577) that dramatically expands areas where residential developments can proceed without parking mandates. This map visualizes the new landscape of parking-free development zones across the city.

Key Changes: - Properties within CTA-served areas (outside downtown) can now build without parking - Two exceptions remain: Metra-only areas and downtown zoning districts still require Administrative Adjustments

Methodology Caveat: The Metra station buffers shown in this analysis are calculated from GTFS station centerpoints, not from actual station entrances/exits. In practice, the 2,640-foot radius should be measured from platform access points, which may result in slightly different coverage areas than shown here.

Dear Reader: If this kind of policy excites you, please consider becoming a member of Abundant Housing Illinois, which will get you access to the YIMBY Action Slack where over 400 members discuss and organize for housing abundance.


Interactive Map

# Create interactive map
parking_map <- leaflet() %>%
  # Base map
  addProviderTiles(providers$CartoDB.Positron) %>%
  
  # Zone polygons
  addPolygons(
    data = cta_no_parking_wgs,
    fillColor = "#6B46C1", 
    fillOpacity = 0.35, 
    color = "#6B46C1", 
    weight = 1,
    group = "No Parking Requirements",
    popup = "No parking requirements - build freely!"
  ) %>%
  
  addPolygons(
    data = metra_only_wgs, 
    fillColor = "#F97316", 
    fillOpacity = 0.45, 
    color = "#EA580C", 
    weight = 2,
    group = "Admin Adjustment Required (Metra-only)",
    popup = "Administrative Adjustment required for parking reduction"
  ) %>%
  
  addPolygons(
    data = downtown_wgs, 
    fillColor = "#000000", 
    fillOpacity = 0.15, 
    color = "#000000", 
    weight = 0.7,
    group = "Downtown Carve-out (D-districts)",
    popup = "Downtown district - parking requirements remain"
  ) %>%
  
  # Transit stations
  addCircleMarkers(
    data = cta_rail_sf, 
    radius = 3, 
    color = "#0078D4", 
    fillOpacity = 0.9, 
    group = "CTA Rail Stations",
    popup = ~paste0("<b>", stop_name, "</b><br>CTA Rail")
  ) %>%
  
  addCircleMarkers(
    data = metra_sf, 
    radius = 3, 
    color = "#E31837", 
    fillOpacity = 0.9, 
    group = "Metra Stations",
    popup = ~paste0("<b>", stop_name, "</b><br>Metra")
  ) %>%
  
  # Reference boundaries (added last to be on top)
  addPolylines(
    data = community_areas,
    color = "#999999",
    weight = 0.5,
    opacity = 0.5,
    fill = FALSE
  ) %>%
  
  addPolylines(
    data = city_boundary_wgs,
    color = "#666666",
    weight = 1,
    opacity = 0.7,
    fill = FALSE
  ) %>%
  
  # Layer controls
  addLayersControl(
    overlayGroups = c("No Parking Requirements", 
                     "Admin Adjustment Required (Metra-only)",
                     "Downtown Carve-out (D-districts)", 
                     "CTA Rail Stations", 
                     "Metra Stations"),
    options = layersControlOptions(collapsed = FALSE)
  ) %>%
  
  # Legend
  addLegend(
    position = "bottomright",
    colors = c("#6B46C1", "#F97316", "#000000"),
    labels = c("No Parking Requirements", 
               "Admin Adjustment Required", 
               "Downtown Carve-out"),
    title = "Parking Elimination Zones",
    opacity = 0.7
  ) %>%
  
  # Hide all groups except the main one
  hideGroup("Admin Adjustment Required (Metra-only)") %>%
  hideGroup("Downtown Carve-out (D-districts)") %>%
  hideGroup("CTA Rail Stations") %>%
  hideGroup("Metra Stations") %>%
  
  # Set initial view
  setView(lng = -87.6298, lat = 41.8781, zoom = 11)

# Display map
parking_map

Key Findings

The new ordinance represents a major shift in Chicago’s approach to parking requirements:

  • 165.2 square miles (70.6% of the city) are now considered transit-served
  • 150.6 square miles (64.4% of the city) can build residential developments without any parking
  • 12.2 square miles (5.2% of the city) require an Administrative Adjustment to reduce parking

This means that approximately 64.4% of Chicago is now free from residential parking mandates, enabling more affordable and sustainable development near transit.


Data Sources


Additional Resources


Questions or feedback? This analysis is open source. Contributions and corrections are welcome on Github.